import regex

# findall：匹配字符串中所有的符合正则的内容。
lst = regex.findall('\d+', '我的电话是：10086，我女朋友的电话是：10010')
print(lst)
lst = regex.findall(r'\d+', '我的电话是：10086，我女朋友的电话是：10010')
print(lst)

# finditer：匹配字符串中所有的内容，返回的是迭代器。从迭代器中拿到内容需要.group()。
iterator = regex.finditer('\d+', '我的电话是：10086，我女朋友的电话是：10010')
print(iterator)
for i in iterator:
    print(i)
    print(i.group())

# search：找到一个结果就返回，返回的结果是 Match 对象，拿数据需要.group()。
search = regex.search('\d+', '我的电话是：10086，我女朋友的电话是：10010')
print(search)
print(search.group())

# match：从头开始匹配，可以理解为默认添加了^，那正则就变成了'^\d+'。找到一个结果就返回，返回的结果是 Match 对象，拿数据需要.group()。
search = regex.search('\d+', '10086，我女朋友的电话是：10010')
print(search)
print(search.group())

# 预加载正则表达式
pattern = regex.compile(r'\d+')
pattern_iterator = pattern.finditer('我的电话是：10086，我女朋友的电话是：10010')
for i in pattern_iterator:
    print(i)
    print(i.group())
lst = pattern.findall('我的电话是：10086，我女朋友的电话是：10010')
print(lst)

s = """
<div class='jay'><span id='1'>郭麒麟</span></div>
<div class='jj'><span id='2'>宋轶</span></div>
<div class='jolin'><span id='3'>大聪明</span></div>
<div class='sylar'><span id='4'>范思哲</span></div>
<div class='tory'><span id='5'>胡说八道</span></div>
"""
regex_compile = regex.compile(r"<div class='.*?'><span id='\d+'>.*?</span></div>")
result = regex_compile.finditer(s)
for i in result:
    print(i.group())
# (?P<名字>2_正则) 可以单独从正则匹配的内容中进一步提取内容。
regex_compile = regex.compile(r"<div class='.*?'><span id='(?P<id>\d+)'>(?P<wahaha>.*?)</span></div>")
result = regex_compile.finditer(s)
for i in result:
    print(i.group(1))
    print(i.group('id'))
    print(i.group(2))
    print(i.group('wahaha'))
